feat: update Bob integration to skills-based layout for Bob 2.0#3415
feat: update Bob integration to skills-based layout for Bob 2.0#3415davidebibm wants to merge 1 commit into
Conversation
Bob 2.0 replaces the command-based workflow (.bob/commands/*.md) with a skills-based layout (.bob/skills/speckit-<name>/SKILL.md), matching the pattern used by Claude Code, Codex, and other skills-first agents. - Switch BobIntegration from MarkdownIntegration to SkillsIntegration - Update folder/dir from .bob/commands to .bob/skills - Change extension from .md to /SKILL.md (skills layout) - Add --skills option (default: True) consistent with Codex pattern - Update tests to inherit from SkillsIntegrationTests (28 tests pass) - Bump catalog entry to version 2.0.0 with updated description Assisted-by: IBM Bob (model: claude-sonnet-4-5, autonomous)
|
@mnriem please review, we need to make this work with new Bob... Thankyou so much |
There was a problem hiding this comment.
Pull request overview
This PR updates the built-in IBM Bob integration to align with Bob 2.0’s skills-based layout, switching installation output from command files to speckit-<name>/SKILL.md skills directories and bumping the integration’s catalog version accordingly.
Changes:
- Migrate
BobIntegrationfromMarkdownIntegrationtoSkillsIntegrationand update output paths to.bob/skills/.../SKILL.md. - Update Bob integration tests to use the shared
SkillsIntegrationTestsmixin. - Bump the Bob entry in
integrations/catalog.jsonto2.0.0with an updated description.
Show a summary per file
| File | Description |
|---|---|
src/specify_cli/integrations/bob/__init__.py |
Switch Bob to SkillsIntegration and update registrar/config output to .bob/skills + /SKILL.md. |
tests/integrations/test_integration_bob.py |
Update base test mixin and expected output directories for the skills layout. |
integrations/catalog.json |
Bump Bob integration version/description to reflect the 2.0.0 skills-based update. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 2
- Review effort level: Low
|
|
||
| from __future__ import annotations | ||
|
|
||
| from ..base import IntegrationOption, SkillsIntegration |
There was a problem hiding this comment.
Agree but it's same pattern used in Codex, I've just replicated the same
Should I remove it anyway?
@mnriem
@copilot-sre-bot
| @classmethod | ||
| def options(cls) -> list[IntegrationOption]: | ||
| return [ | ||
| IntegrationOption( | ||
| "--skills", | ||
| is_flag=True, | ||
| default=True, | ||
| help="Install as agent skills (default for Bob 2.0)", | ||
| ), | ||
| ] |
There was a problem hiding this comment.
Agree but it's same pattern used in Codex, this will act as help message info
Should I remove it anyway?
@mnriem
@copilot-sre-bot
mnriem
left a comment
There was a problem hiding this comment.
As this fundamentally changes the layout for any Bob users what is the migration strategy? This will break them once they adopt a new version of Spec Kit so you need to make sure this goes through a deprecation cycle so they can migrate to the new Bob version. E.g make it an opt-in to the new version of Bob first and then in 2 minor releases (X.Y.Z where Y is minor) you can then remove the non-skill variant
Hi @mnriem |
Bob 2.0 replaces the command-based workflow with a skills-based layout.
https://bob.ibm.com/blog/bob-v2-release-announcement
Description
Testing
uv run specify --helpuv sync && uv run pytestAI Disclosure
Very simple code generated by Bob but verified by me